iT邦幫忙

2025 iThome 鐵人賽

DAY 14
1

引言

在前面的文章裡,我們聊了 NLP 是什麼、語料的前處理,也看過文字要怎麼轉換成數字。但是,這些都只是前置預備作業!
真正要讓電腦能夠做各種 NLP 任務的關鍵其實是 「模型訓練」!!

「模型訓練」可以想成是電腦學習的過程。我們把資料餵給模型,讓它去學習資料中規律,最後可以依照他所學去做出判斷。(像以下這張梗圖XD)


圖片來源:https://x.com/bindureddy/status/1356787511469641729

這過程也有點像是學生要學習跟考試:

  • 一開始我們會做很多練習題,然後對答案。
  • 當我們做得題目多了,就開始會記住一些解題規則。
  • 然後會透過模擬考來知道我們現在學習的程度。
  • 最後在大考的時候就是真正上戰場的時間啦~

所以就像一開始什麼都不會的學生,透過一些練習和回饋,慢慢掌握題目的模式,目的是在最後遇到沒看過的考題也能答出來。對 NLP 而言,模型訓練的目的就是把「資料中的規律」轉化成「模型能理解並應用的能力」。

接下來我們來了解實際的訓練流程跟一些重要的概念~

訓練流程

1. 語料搜集與前處理

先收集我們需要的語料,例如:電影評論、餐廳評論、PTT文章等等。
然後再清理語料:去掉多餘的符號、重複的文字(Regex 應用)
也會對語料進行一些前處理:斷詞詞性標註

有些任務需要有標準答案,所以會需要做一些語料標註。例如: 想判斷電影評論為好評 or 負評,我們需要標註出我們搜集的訓練資料是好評還是負評。

2. 特徵工程

其中一個方法是將文字向量化。因為電腦不懂文字,它只懂數字,所以我們要把文字轉成模型能理解的形式:

我們也可以加上一些 語言學特徵,例如:

  • 句子裡的詞性分布
  • 句法的結構
  • 正面詞、負面詞的頻率

比方說,在做情感分析時,如果評論裡充滿「超好吃」、「必點」,那大概就是好評,如果是提到「難吃」、「不推」,就比較偏負評。所以除了文本的向量,加上更多的語言特徵,有時候能讓模型更容易捕捉語言中的細微差別~

3. 模型選擇

不同的模型適合做不同的任務,依據任務的需求,像是資料量多寡、任務簡單還是複雜、你想要結果容易解釋還是追求準確率等等的考量,可以選擇適合的模型。

  • 傳統機器學習模型:Naive Bayes、決策樹、SVM
  • 深度學習模型:RNN、LSTM、Transformer
  • 大型語言模型:GPT、Llama

4. 模型訓練

模型拿到資料後,會進行資料劃分,將資料分成三份或兩份:

  • 訓練集 Training set
  • 測試集 Test set
  • 驗證集 Validation set(有時候不會有這個)


圖片來源:https://datamastersclub.com/how-to-train-and-test-data-like-a-pro/

訓練集就像平常練習用的題目,驗證集是用來調整學習方式的模擬考,而測試集才是真正的期末考,來檢驗模型在完全新的情境下的實力。所以通常訓練集會是最多的,驗證集跟測試集會比較少。

5. 評估表現

當模型用訓練集學完之後,接下來會用驗證集測試集來看看它在沒見過的新資料上表現得怎麼樣。那要怎麼打分數呢?這時候就會用到底下這個 「混淆矩陣」(Confusion Matrix)
混淆矩陣會把「真實標籤」和「模型預測標籤」的結果交叉排列,分成「正/負」的組合。透過這張矩陣,我們就能清楚看到模型在哪些地方判斷正確、在哪些地方出錯,進而計算出各種不同的評估指標。


圖片來源:https://www.researchgate.net/figure/Calculation-of-Precision-Recall-and-Accuracy-in-the-confusion-matrix_fig3_336402347

  • 準確率(Accuracy):模型答對的比例。但在資料不平衡的時候(例如 95% 都是好評、5% 是負評),就會有「只要全猜好評就超高準確率」的問題。
  • 精確率(Precision):模型認為是「好評」的當中,有多少比例真的是「好評」。

    可以想成模型有沒有誤認壞人為好人。

  • 召回率(Recall):所有真正的「好評」裡面,有多少比例是模型也有答對是「好評」。

    可以想成模型有沒有把好評通通撈回來。

  • F1 分數(F1 score):精確率和召回率的加權平均,在兩種評估角度之間取得平衡。

結語

總之,模型訓練就像是電腦的學習歷程。今天我們聊的只是最基礎的概念,實際上模型訓練還可以分成許多不同的類型,例如「監督式學習」、「非監督式學習」和「半監督式學習」等等。如果大家有興趣,可以再深入去了解這些不同的學習方式~

不過有了這一層基礎理解之後,接下來我們就能進一步往下走,探索各種具體的模型方法啦!在下一篇,我們會先從最經典的機器學習模型 Naive Bayes 開始,看看它是怎麼用簡單的機率規則,完成文本分類任務吧!


上一篇
Day 13|語境中的向量:Contextual Embedding
下一篇
Day 15|用機率猜猜看:Naive Bayes
系列文
讓電腦聽懂人話:30 天 NLP 入門22
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言